package common;
//페이징을 위한 Vo객체(상담,계약)
//은규
public class PagingVo {
	
	int listSize = 5;	//한페이지에 보여질 행 수
	int blockSize = 3;	//보여질 페이지 이동 번호 수
	int totSize = 0;	//검색된 데이터 총 갯수
	int totPage = 0; 	//전체 페이지수
	int totBlock = 0; 	//전체 블럭수
	int listPage = 1;	//현제 페이지
	int nowBlock = 1;	//현재 블럭
	int startNo = 1;	//리스트 목록의 시작위치
	int endNo = 3;		//리스트 목록의 마지막 위치
	int startPage = 1;	//현재 블럭의 시작 페이지 번호
	int endPage = 2;	//현재 블럭의 마지막 페이지 번호(blockSize가 2여서 2)
	
	public PagingVo() {}

	public PagingVo(int listSize, int blockSize, int totSize, int totPage,
			int totBlock, int listPage, int nowBlock, int startNo, int endNo,
			int startPage, int endPage) {
		this.listSize = listSize;
		this.blockSize = blockSize;
		this.totSize = totSize;
		this.totPage = totPage;
		this.totBlock = totBlock;
		this.listPage = listPage;
		this.nowBlock = nowBlock;
		this.startNo = startNo;
		this.endNo = endNo;
		this.startPage = startPage;
		this.endPage = endPage;
	}




	public int getListSize() {
		return listSize;
	}
	public void setListSize(int listSize) {
		this.listSize = listSize;
	}
	public int getBlockSize() {
		return blockSize;
	}
	public void setBlockSize(int blockSize) {
		this.blockSize = blockSize;
	}
	public int getTotSize() {
		return totSize;
	}
	public void setTotSize(int totSize) {
		this.totSize = totSize;
	}
	public int getTotPage() {
		return totPage;
	}
	public void setTotPage(int totPage) {
		this.totPage = totPage;
	}
	public int getTotBlock() {
		return totBlock;
	}
	public void setTotBlock(int totBlock) {
		this.totBlock = totBlock;
	}
	public int getListPage() {
		return listPage;
	}
	public void setListPage(int listPage) {
		this.listPage = listPage;
	}
	public int getNowBlock() {
		return nowBlock;
	}
	public void setNowBlock(int nowBlock) {
		this.nowBlock = nowBlock;
	}
	public int getStartNo() {
		return startNo;
	}
	public void setStartNo(int startNo) {
		this.startNo = startNo;
	}
	public int getEndNo() {
		return endNo;
	}
	public void setEndNo(int endNo) {
		this.endNo = endNo;
	}
	public int getStartPage() {
		return startPage;
	}
	public void setStartPage(int startPage) {
		this.startPage = startPage;
	}
	public int getEndPage() {
		return endPage;
	}
	public void setEndPage(int endPage) {
		this.endPage = endPage;
	}
	
	//페이징 계산하는 메소드
	public PagingVo computer(int tot, int nowPage){
		totPage = (int)Math.ceil(tot*1.0 / listSize);
		totBlock = (int)Math.ceil(totPage*1.0/blockSize);
		nowBlock = (int)Math.ceil(nowPage*1.0/blockSize);
		
		endPage = nowBlock*blockSize;
		startPage = endPage - blockSize+1;
		if(totPage < endPage) endPage = totPage;
		endNo = nowPage*listSize;
		startNo = endNo-listSize+1;
		if(tot<endNo) endNo = tot;
		
		PagingVo pv = new PagingVo(listSize, blockSize, tot, totPage, totBlock, 
				nowPage, nowBlock, startNo, endNo, startPage, endPage);
		return pv;
	}
	
	
}
